package com.xuecheng.manage_course.service;

import com.xuecheng.framework.domain.course.*;
import com.xuecheng.framework.domain.course.ext.CategoryNode;
import com.xuecheng.framework.domain.course.ext.CourseInfo;
import com.xuecheng.framework.domain.course.ext.CourseView;
import com.xuecheng.framework.domain.course.ext.TeachplanNode;
import com.xuecheng.framework.domain.course.request.CourseListRequest;
import com.xuecheng.framework.domain.course.response.CoursePublishResult;
import com.xuecheng.framework.domain.system.SysDictionary;
import com.xuecheng.framework.model.response.QueryResponseResult;
import com.xuecheng.framework.model.response.ResponseResult;
import org.springframework.stereotype.Component;

@Component
public interface CourseService {

    TeachplanNode findTeachplanList(String courseId);

    ResponseResult addTeachplin(Teachplan teachplan);


    QueryResponseResult<CourseInfo> findCourseList(String company_id, CourseListRequest courseListRequest, int page, int size);

    CategoryNode findCateGory();

    SysDictionary findDictionary(String type);

    CourseBase getCourseBaseById(String courseId);

    CourseMarket getCourseMarketById(String courseId);

    ResponseResult updateCourseBaseById(String id, CourseBase courseBase);

    ResponseResult updateCourseMarketById(String id, CourseMarket courseMarket);

    CourseView courseView(String id);

    ResponseResult addCoursePic(String courseId, String pic);

    CoursePic findCoursePic(String courseId);

    ResponseResult deleteCoursePic(String courseId);

    CoursePublishResult preview(String id);

    CoursePublishResult publish(String id);

    ResponseResult savemedia(TeachplanMedia teachplanMedia);
}
